perm filename SUIO.MAC[X,ALS] blob sn#091993 filedate 1974-03-19 generic text, type T, neo UTF8
00100	;	SUBROUTINE SETAD(JFN,SPEED)
00200	;OR	SUBROUTINE SETAD(JFN)
00300	;OR	SUBROUTINE SETAD
00400	TITLE	SETAD
00500	ENTRY	SETAD
00600	ENTRY	ADINP1
00700	ENTRY	ADINP2
00800	ENTRY	ADINP3
00900	ENTRY	RELAD
01000	TEMP:	BLOCK	1
01100	SETAD:	0
01200		MOVEM	1,TEMP
01300		HLRZ	1,0(16)		;IS THERE A JFN?
01400		ANDI	1,777000
01500		CAIE	1,320000
01600		JRST	NONE
01700		HRLZ	1,@0(16)
01800		LSH	1,5
01900		IORM	1,OPN
02000		IORM	1,MTP
02100		IORM	1,OUTPT1
02200		IORM	1,OUTPT2
02300		IORM	1,OUTPT3
02400		IORM	1,REL
02500		HLRZ	1,1(16)		;IS THERE A SPEED?
02600		ANDI	1,777000
02700		CAIE	1,320000
02800		JRST	NONE
02900		MOVE	1,@1(16)	;GET SPEED
03000		CAIN	1,↑D51200
03100		HRRZI	1,3
03200		CAIN	1,↑D25600
03300		HRRZI	1,2
03400		CAIN	1,↑D12800
03500		HRRZI	1,1
03600		CAIN	1,↑D6400
03700		HRRZI	1,0
03800		CAILE	1,3
03900		HRRZI	1,2
04000		IMULI	1,1000
04100		AOJA	1,.+2
04200	NONE:	HRRZI	1,2001
04300		MOVEM	1,MTPWD
04400	OPN:	INIT	0,117
04500		SIXBIT/ADC/
04600		0
04700		TTCALL	3,MSG
04800	MTP:	MTAPE	0,MTPWD
04900		MOVE	1,TEMP
05000		JRA	16,0(16)
05100	MSG:	ASCIZ/	CANNOT INIT ADC /
05200	MTPWD:	0
05300		0
05400		0
     

00100	;	SUBROUTINE ADINP1(NUM,ARRAY)
00200	ADINP1:	0
00300		MOVEM	1,TEMP
00400		MOVN	1,@0(16)
00500		HRLZM	1,ADR1
00600		MOVE	1,1(16)
00700		SOJ	1,0
00800		HRRM	1,ADR1
00900	OUTPT1:	IN	0,ADR1
01000		CAIA	0,0
01100		JRST	FAIL1
01200		MOVE	1,TEMP
01300		JRA	16,2(16)
01400	ADR1:	0
01500		0
01600	FAIL1:	TTCALL	3,MES1
01700		JRST	.-5
01800	MES1:	ASCIZ	/
01900	FAILURE IN ADINP1
02000	/
     

00100	;	SUBROUTINE ADINP2(NUM,ARRAY)
00200	ADINP2:	0
00300		MOVEM	1,TEMP
00400		MOVN	1,@0(16)
00500		HRLZM	1,ADR2
00600		MOVE	1,1(16)
00700		SOJ	1,0
00800		HRRM	1,ADR2
00900	OUTPT2:	IN	0,ADR2
01000		CAIA	0,0
01100		JRST	FAIL2
01200		MOVE	1,TEMP
01300		JRA	16,2(16)
01400	ADR2:	0
01500		0
01600	FAIL2:	TTCALL	3,MES2
01700		JRST	.-5
01800	MES2:	ASCIZ	/
01900	FAILURE IN ADINP2
02000	/
     

00100	;	SUBROUTINE ADINP3(NUM,ARRAY)
00200	ADINP3:	0
00300		MOVEM	1,TEMP
00400		MOVN	1,@0(16)
00500		HRLZM	1,ADR3
00600		MOVE	1,1(16)
00700		SOJ	1,0
00800		HRRM	1,ADR3
00900	OUTPT3:	IN	0,ADR3
01000		CAIA	0,0
01100		JRST	FAIL3
01200		MOVE	1,TEMP
01300		JRA	16,2(16)
01400	ADR3:	0
01500		0
01600	FAIL3:	TTCALL	3,MES3
01700		JRST	.-5
01800	MES3:	ASCIZ	/
01900	FAILURE IN ADINP3
02000	/
     

00100	RELAD:	0
00200	REL:	RELEAS	0,0
00300		JRA	16,0(16)
00400		PRGEND
     

00100	;	SUBROUTINE SETDA(JFN,SPEED)
00200	;OR	SUBROUTINE SETDA(JFN)
00300	;OR	SUBROUTINE SETDA
00400	TITLE	SETDA
00500	ENTRY	SETDA
00600	ENTRY	DAOUT
00650	ENTRY	RELDA
00700	SETDA:	0
00800		HRRZI	1,0
00900		DPB	1,[POINT 2,OUTBIT,26]
01000		HLRZ	1,0(16)		;IS THERE A JFN?
01100		ANDI	1,777000
01200		CAIE	1,320000
01300		JRST	NOJFN
01400		HRLZ	1,@0(16)
01500		LSH	1,5
01600		IORM	1,OPN
01700		IORM	1,OUTPT
01800		IORM	1,REL
01900		HLRZ	1,1(16)		;IS THERE A SPEED?
02000		ANDI	1,777000
02100		CAIE	1,320000
02200		JRST	NOSPED
02300		MOVE	1,@1(16)	;GET SPEED
02400		CAIL	1,5
02500	NOJFN:	HRRZI	1,1
02600		CAIA	0,0
02700	NOSPED:	HRRZI	1,1
02800	GOON:	DPB	1,[POINT 3,OUTBIT,32]
02900	OPN:	OPEN	0,[117 	;MODE
03000	         	'AD    '        ;DEVICE NAME
03100	 		0]              ;NO BUFFER HEADERS
03200	
03300		TTCALL	3,MSG
03400		JRA	16,0(16)
03500	MSG:	ASCIZ/	CANNOT OPEN DA /
     

00100	;	SUBROUTINE DAOUT(NUM,BUF)
00200	OUTWC:	0
00300		3650			;MAGIC BITS FOR 136.
00400	OUTBIT: 4000			;BITS FOR D-A
00500		BLOCK	2
00600	DAOUT:	0
00700		HRRZ	1,1(16)		;GET BUF POINTER
00800		SOJ	1,1		;NOW WE HAVE BUF-1
00900		HRRZM	1,OUTWC		;NOW WE HAVE 0,BUF-1
01000		MOVN	1,@0(16)	;GET -NUM
01100		HRLM	1,OUTWC		;NOW WE HAVE -NUM,BUF-1
01200	OUTPT:	OUTPUT	0,OUTWC
01300		JRA	16,2(16)
     

00100	RELDA:	0
00200	REL:	RELEAS	0,0
00300		JRA	16,0(16)
00400		PRGEND
     

00100	;	SUBROUTINE LOCK
00200	;	SUBROUTINE UNLOCK
00300	TITLE	LOCK
00400	ENTRY	LOCK
00500	ENTRY	UNLOCK
00600	LOCK:	0
00700		CALLI	400076
00800		JRA	16,0(16)
00900	UNLOCK:	0
01000		CALLI	400077
01100		JRA	16,0(16)
01200		PRGEND
     

00100	TITLE	MAGSTF
00200	;	SUBROUTINE SETMAG(NUM)
00300	;	SUBROUTINE REWIND
00400	;	SUBROUTINE GMAGRC(ARRAY,LENGTH)
00500	;	SUBROUTINE PMAGRC(ARRAY,LENGTH)
00600	;	SUBROUTINE MCLOSE
00700	;	SUBROUTINE RELMAG
00800	;	SUBROUTINE NEXFIL
00900	;	SUBROUTINE PREFIL
01000	ENTRY	SETMAG
01100	ENTRY	REWIND
01200	ENTRY	GMAGRC
01300	ENTRY	PMAGRC
01400	ENTRY	MCLOSE
01500	ENTRY	RELMAG
01600	ENTRY	NEXFIL
01700	ENTRY	PREFIL
01800	TEMP:	0
01900	ADR:	BLOCK	2
02000	MT1:	SIXBIT/MTA1/
02100	MT0:	SIXBIT/MTA0/
     

00100	SETMAG:	0
00200		MOVEM	0,TEMP
00300		MOVE	0,MT0
00400		MOVEM	0,MGTAPE
00500		MOVE	0,@0(16)
00600		JUMPE	0,.+3
00700		MOVE	0,MT1
00800		MOVEM	0,MGTAPE
00900		INIT	5,17
01000	MGTAPE:	0
01100		0
01200		JRST	.+3
01300		MOVE	0,TEMP
01400		JRA	16,0(16)
01500		TTCALL	3,SETERR
01600		HALT
01700	SETERR:	ASCIZ	/
01800	ERROR IN SETMAG - HALTING
01900	/
02000	REWIND:	0
02100		MTAPE	5,1
02200		JFCL
02300		MTAPE	5,0
02400		JRA	16,0(16)
     

00100	GMAGRC:	0
00200		MOVEM	1,TEMP
00300		MOVN	1,@1(16)
00400		HRLZM	1,ADR
00500		HRRZ	1,0(16)
00600		SOJ	1,0
00700		HRRM	1,ADR
00800		IN	5,ADR
00900		CAIA	1,0
01000		TTCALL	3,RERR
01100		MOVE	1,TEMP
01200		JRA	16,2(16)
01300	RERR:	ASCIZ	/
01400	ERROR IN MAGTAPE READING - CONTINUING
01500	/
     

00100	PMAGRC:	0
00200		MOVEM	1,TEMP
00300		MOVN	1,@1(16)
00400		HRLZM	1,ADR
00500		HRRZ	1,0(16)
00600		SOJ	1,0
00700		HRRM	1,ADR
00800		OUT	5,ADR
00900		CAIA	1,0
01000		TTCALL	3,WERR
01100		MOVE	1,TEMP
01200		JRA	16,2(16)
01300	WERR:	ASCIZ	/
01400	ERROR IN MAGTAPE WRITING - CONTINUING
01500	/
     

00100	MCLOSE:	0
00200		CLOSE	5,0
00300		JRA	16,0(16)
00400	RELMAG:	0
00500		RELEASE	5,0
00600		JRA	16,0(16)
00700	NEXFIL:	0
00800		MTAPE	5,16
00900		MTAPE	5,0
01000		JRA	16,0(16)
01100	PREFIL:	0
01200		MTAPE	5,17
01300		MTAPE	5,0
01400		MTAPE	5,17
01500		MTAPE	5,0
01600		STATO	5,4000
01700		MTAPE	5,16
01800		MTAPE	5,0
01900		JRA	16,0(16)
02000		PRGEND
     

00100	TITLE	XGPSTF
00200	;	SUBROUTINE SETXGP
00300	ENTRY	SETXGP
00400	;	SUBROUTINE OUTXG1(BUFFER,NUM)
00500	ENTRY	OUTXG1
00600	;	SUBROUTINE OUTXG2(BUFFER,NUM)
00700	ENTRY	OUTXG2
00800	;	SUBROUTINE OUTXG3(BUFFER,NUM)
00900	ENTRY	OUTXG3
01000	;	SUBROUTINE RELXGP
01100	ENTRY	RELXGP
01200	TEMP:	0
01300	ADR:	0
01400		0
01500	ADR1:	0
01600		0
01700	ADR2:	0
01800		0
01900	ADR3:	0
02000		0
02100	SETXGP:	0
02200		INIT	10,1117
02300		SIXBIT	/XGP/
02400		0
02500		JRST	.-3
02600		JRA	16,0(16)
     

00100	OUTXG1:	0
00200		MOVEM	1,TEMP
00300		MOVN	1,@1(16)
00400		HRLZM	1,ADR1
00500		MOVE	1,0(16)
00600		SOJ	1,0
00700		HRRM	1,ADR1
00800		OUT	10,ADR1
00900		CAIA	0,0
01000		JRST	FAIL1
01100		MOVE	1,TEMP
01200		JRA	16,2(16)
01300	FAIL1:	TTCALL	3,MES1
01400		JRST	.-3
01500	MES1:	ASCIZ	/
01600	FAILURE IN OUTXG1
01700	/
     

00100	OUTXG2:	0
00200		MOVEM	1,TEMP
00300		MOVN	1,@1(16)
00400		HRLZM	1,ADR2
00500		MOVE	1,0(16)
00600		SOJ	1,0
00700		HRRM	1,ADR2
00800		OUT	10,ADR2
00900		CAIA	0,0
01000		JRST	FAIL2
01100		MOVE	1,TEMP
01200		JRA	16,2(16)
01300	FAIL2:	TTCALL	3,MES2
01400		JRST	.-3
01500	MES2:	ASCIZ	/
01600	FAILURE IN OUTXG2
01700	/
     

00100	OUTXG3:	0
00200		MOVEM	1,TEMP
00300		MOVN	1,@1(16)
00400		HRLZM	1,ADR3
00500		MOVE	1,0(16)
00600		SOJ	1,0
00700		HRRM	1,ADR3
00800		OUT	10,ADR3
00900		CAIA	0,0
01000		JRST	FAIL3
01100		MOVE	1,TEMP
01200		JRA	16,2(16)
01300	FAIL3:	TTCALL	3,MES3
01400		JRST	.-3
01500	MES3:	ASCIZ	/
01600	FAILURE IN OUTXG3
01700	/
     

00100	RELXGP:	0
00200		RELEAS	10,0
00300		JRA	16,0(16)
00400		PRGEND
     

00100		TITLE	NULL
00200		ENTRY	NULL
00300	NULL:	0
00400		JRA	16,0(16)
00500		END